Currently, many robots exist that can fulfill tasks based on their available functionalities. Robots are taking on more importance in industries as technology evolves. The robot industry is progressively being adopted in companies in order to accomplish complex tasks, and robots are becoming more autonomous and complex in their functionalities. For example, robots can find their own way from one point to another, or pick up goods and transport them. However, one single robot is generally restricted to a certain set of functionalities, thus, reducing the scope of the task it can achieve. A robot specialized in moving heavy goods may not be equipped with a mechanical arm, preventing it from being able to pick up goods from a shelf. That means that robots still remain specialized and can only accomplish a defined set of tasks. Combining robots in order to achieve more complex tasks is sometimes done in automotive industries, for example, where assembly robots are sequentially followed by painting robots, in order to help building cars. Still, this robot assembly is achieved manually, and requires programmatic efforts. In order to achieve tasks that a single robot cannot accomplish alone there are no tools at the moment that allow for the automatic composition of functionalities of different robots. Thus, either a task is not fulfilled, or a new robot is built, or the composition of a plurality of robots is done manually by human beings. No solution exists yet that proposes to assemble robot functionalities automatically, apart for engineers that sit around a table and spend time designing and programming new applications in order to combine robots. Yet, this approach is not flexible, and it is restricted to the robots it has been designed for.
In the meantime, research in the area of web service composition has progressed. Research prototypes are now able to compose services automatically in order to accomplish a desired task such as answering a certain request. Provided that a developer semantically describes the preconditions and the goal of a task, and provided that web services available are also semantically described, a computer can automatically set up a composite service that can fulfill the task. A so-called expert system can be based on such an automatic service composition.